using System;
using System.IO;
using System.Linq;
using System.Globalization;
using System.Collections.Generic;

namespace Timelapse_API
{
	public partial class PP3
	{
		private void Write321(StreamWriter writer)
		{
			CultureInfo culture = new CultureInfo("en-US");
			string digits = "F16";

			writer.WriteLine("[Version]");
			writer.WriteLine("AppVersion=" + Values["Version.AppVersion"].Value.ToString());
			writer.WriteLine("Version=" + FileVersion.ToString());
			writer.WriteLine();
			writer.WriteLine("[General]");
			writer.WriteLine("Rank=" + Values["General.Rank"].Value.ToString());
			writer.WriteLine("ColorLabel=" + Values["General.ColorLabel"].Value.ToString());
			writer.WriteLine("InTrash=" + Values["General.InTrash"].Value.ToString().ToLower());
			writer.WriteLine();
			writer.WriteLine("[Exposure]");
			writer.WriteLine("Auto=" + Values["Exposure.Auto"].Value.ToString().ToLower());
			writer.WriteLine("Clip=" + ((double)Values["Exposure.Clip"].Value).ToString(digits, culture));
			writer.WriteLine("Compensation=" + NewCompensation.ToString(digits, culture));
			writer.WriteLine("Brightness=" + Values["Exposure.Brightness"].Value.ToString());
			writer.WriteLine("Contrast=" + Values["Exposure.Contrast"].Value.ToString());
			writer.WriteLine("Saturation=" + Values["Exposure.Saturation"].Value.ToString());
			writer.WriteLine("Black=" + Values["Exposure.Black"].Value.ToString());
			writer.WriteLine("HighlightCompr=" + Values["Exposure.HighlightCompr"].Value.ToString());
			writer.WriteLine("HighlightComprThreshold=" + Values["Exposure.HighlightComprThreshold"].Value.ToString());
			writer.WriteLine("ShadowCompr=" + Values["Exposure.ShadowCompr"].Value.ToString());
			writer.WriteLine("CurveMode=" + Values["Exposure.CurveMode"].Value.ToString());
			writer.WriteLine("CurveMode2=" + Values["Exposure.CurveMode2"].Value.ToString());
			writer.WriteLine("Curve=" + ((PP3Curve)Values["Exposure.Curve"].Value).ToString());
			writer.WriteLine("Curve2=" + ((PP3Curve)Values["Exposure.Curve2"].Value).ToString());
			writer.WriteLine();
			writer.WriteLine("[HLRecovery]");
			writer.WriteLine("Enabled=" + Values["HLRecovery.Enabled"].Value.ToString().ToLower());
			writer.WriteLine("Method=" + Values["HLRecovery.Method"].Value.ToString());
			writer.WriteLine();
			writer.WriteLine("[Channel Mixer]");
			writer.WriteLine("Red=" + ((PP3Curve)Values["ChannelMixer.Red"].Value).ToString());
			writer.WriteLine("Green=" + ((PP3Curve)Values["ChannelMixer.Green"].Value).ToString());
			writer.WriteLine("Blue=" + ((PP3Curve)Values["ChannelMixer.Blue"].Value).ToString());
			writer.WriteLine();
			writer.WriteLine("[Black & White]");
			writer.WriteLine("Enabled=" + Values["BlackAndWhite.Enabled"].Value.ToString().ToLower());
			writer.WriteLine("Method=" + Values["BlackAndWhite.Method"].Value.ToString());
			writer.WriteLine("Auto=" + Values["BlackAndWhite.Auto"].Value.ToString().ToLower());
			writer.WriteLine("ComplementaryColors=" + Values["BlackAndWhite.ComplementaryColors"].Value.ToString().ToLower());
			writer.WriteLine("Setting=" + Values["BlackAndWhite.Setting"].Value.ToString());
			writer.WriteLine("Filter=" + Values["BlackAndWhite.Filter"].Value.ToString());
			writer.WriteLine("MixerRed=" + Values["BlackAndWhite.MixerRed"].Value.ToString());
			writer.WriteLine("MixerOrange=" + Values["BlackAndWhite.MixerOrange"].Value.ToString());
			writer.WriteLine("MixerYellow=" + Values["BlackAndWhite.MixerYellow"].Value.ToString());
			writer.WriteLine("MixerGreen=" + Values["BlackAndWhite.MixerGreen"].Value.ToString());
			writer.WriteLine("MixerCyan=" + Values["BlackAndWhite.MixerCyan"].Value.ToString());
			writer.WriteLine("MixerBlue=" + Values["BlackAndWhite.MixerBlue"].Value.ToString());
			writer.WriteLine("MixerMagenta=" + Values["BlackAndWhite.MixerMagenta"].Value.ToString());
			writer.WriteLine("MixerPurple=" + Values["BlackAndWhite.MixerPurple"].Value.ToString());
			writer.WriteLine("GammaRed=" + Values["BlackAndWhite.GammaRed"].Value.ToString());
			writer.WriteLine("GammaGreen=" + Values["BlackAndWhite.GammaGreen"].Value.ToString());
			writer.WriteLine("GammaBlue=" + Values["BlackAndWhite.GammaBlue"].Value.ToString());
			writer.WriteLine("Algorithm=" + Values["BlackAndWhite.Algorithm"].Value.ToString());
			writer.WriteLine("LuminanceCurve=" + ((PP3Curve)Values["BlackAndWhite.LuminanceCurve"].Value).ToString());
			writer.WriteLine("BeforeCurveMode=" + Values["BlackAndWhite.BeforeCurveMode"].Value.ToString());
			writer.WriteLine("AfterCurveMode=" + Values["BlackAndWhite.AfterCurveMode"].Value.ToString());
			writer.WriteLine("BeforeCurve=" + ((PP3Curve)Values["BlackAndWhite.BeforeCurve"].Value).ToString());
			writer.WriteLine("AfterCurve=" + ((PP3Curve)Values["BlackAndWhite.AfterCurve"].Value).ToString());
			writer.WriteLine();
			writer.WriteLine("[Luminance Curve]");
			writer.WriteLine("Brightness=" + Values["LuminanceCurve.Brightness"].Value.ToString());
			writer.WriteLine("Contrast=" + Values["LuminanceCurve.Contrast"].Value.ToString());
			writer.WriteLine("Chromaticity=" + Values["LuminanceCurve.Chromaticity"].Value.ToString());
			writer.WriteLine("AvoidColorShift=" + Values["LuminanceCurve.AvoidColorShift"].Value.ToString().ToLower());
			writer.WriteLine("RedAndSkinTonesProtection=" + ((double)Values["LuminanceCurve.RedAndSkinTonesProtection"].Value).ToString(digits, culture));
			writer.WriteLine("LCredsk=" + Values["LuminanceCurve.LCredsk"].Value.ToString().ToLower());
			writer.WriteLine("LCurve=" + ((PP3Curve)Values["LuminanceCurve.LCurve"].Value).ToString());
			writer.WriteLine("aCurve=" + ((PP3Curve)Values["LuminanceCurve.aCurve"].Value).ToString());
			writer.WriteLine("bCurve=" + ((PP3Curve)Values["LuminanceCurve.bCurve"].Value).ToString());
			writer.WriteLine("ccCurve=" + ((PP3Curve)Values["LuminanceCurve.ccCurve"].Value).ToString());
			writer.WriteLine("chCurve=" + ((PP3Curve)Values["LuminanceCurve.chCurve"].Value).ToString());
			writer.WriteLine("lhCurve=" + ((PP3Curve)Values["LuminanceCurve.lhCurve"].Value).ToString());
			writer.WriteLine("hhCurve=" + ((PP3Curve)Values["LuminanceCurve.hhCurve"].Value).ToString());
			writer.WriteLine("LcCurve=" + ((PP3Curve)Values["LuminanceCurve.LcCurve"].Value).ToString());
			writer.WriteLine("ClCurve=" + ((PP3Curve)Values["LuminanceCurve.ClCurve"].Value).ToString());
			writer.WriteLine();
			writer.WriteLine("[Sharpening]");
			writer.WriteLine("Enabled=" + Values["Sharpening.Enabled"].Value.ToString().ToLower());
			writer.WriteLine("Method=" + Values["Sharpening.Method"].Value.ToString());
			writer.WriteLine("Radius=" + ((double)Values["Sharpening.Radius"].Value).ToString(digits, culture));
			writer.WriteLine("Amount=" + Values["Sharpening.Amount"].Value.ToString());
			writer.WriteLine("Threshold=" + ((PP3Curve)Values["Sharpening.Threshold"].Value).ToString());
			writer.WriteLine("OnlyEdges=" + Values["Sharpening.OnlyEdges"].Value.ToString().ToLower());
			writer.WriteLine("EdgedetectionRadius=" + ((double)Values["Sharpening.EdgedetectionRadius"].Value).ToString(digits, culture));
			writer.WriteLine("EdgeTolerance=" + Values["Sharpening.EdgeTolerance"].Value.ToString());
			writer.WriteLine("HalocontrolEnabled=" + Values["Sharpening.HalocontrolEnabled"].Value.ToString().ToLower());
			writer.WriteLine("HalocontrolAmount=" + Values["Sharpening.HalocontrolAmount"].Value.ToString());
			writer.WriteLine("DeconvRadius=" + ((double)Values["Sharpening.DeconvRadius"].Value).ToString(digits, culture));
			writer.WriteLine("DeconvAmount=" + Values["Sharpening.DeconvAmount"].Value.ToString());
			writer.WriteLine("DeconvDamping=" + Values["Sharpening.DeconvDamping"].Value.ToString());
			writer.WriteLine("DeconvIterations=" + Values["Sharpening.DeconvIterations"].Value.ToString());
			writer.WriteLine();
			writer.WriteLine("[Vibrance]");
			writer.WriteLine("Enabled=" + Values["Vibrance.Enabled"].Value.ToString().ToLower());
			writer.WriteLine("Pastels=" + Values["Vibrance.Pastels"].Value.ToString());
			writer.WriteLine("Saturated=" + Values["Vibrance.Saturated"].Value.ToString());
			writer.WriteLine("PSThreshold=" + ((PP3Curve)Values["Vibrance.PSThreshold"].Value).ToString());
			writer.WriteLine("ProtectSkins=" + Values["Vibrance.ProtectSkins"].Value.ToString().ToLower());
			writer.WriteLine("AvoidColorShift=" + Values["Vibrance.AvoidColorShift"].Value.ToString().ToLower());
			writer.WriteLine("PastSatTog=" + Values["Vibrance.PastSatTog"].Value.ToString().ToLower());
			writer.WriteLine("SkinTonesCurve=" + ((PP3Curve)Values["Vibrance.SkinTonesCurve"].Value).ToString());
			writer.WriteLine();
			writer.WriteLine("[SharpenEdge]");
			writer.WriteLine("Enabled=" + Values["SharpenEdge.Enabled"].Value.ToString().ToLower());
			writer.WriteLine("Passes=" + Values["SharpenEdge.Passes"].Value.ToString());
			writer.WriteLine("Strength=" + Values["SharpenEdge.Strength"].Value.ToString());
			writer.WriteLine("ThreeChannels=" + Values["SharpenEdge.ThreeChannels"].Value.ToString().ToLower());
			writer.WriteLine();
			writer.WriteLine("[SharpenMicro]");
			writer.WriteLine("Enabled=" + Values["SharpenMicro.Enabled"].Value.ToString().ToLower());
			writer.WriteLine("Matrix=" + Values["SharpenMicro.Matrix"].Value.ToString().ToLower());
			writer.WriteLine("Strength=" + Values["SharpenMicro.Strength"].Value.ToString());
			writer.WriteLine("Uniformity=" + Values["SharpenMicro.Uniformity"].Value.ToString());
			writer.WriteLine();
			writer.WriteLine("[White Balance]");
			writer.WriteLine("Setting=" + Values["WhiteBalance.Setting"].Value.ToString());
			writer.WriteLine("Temperature=" + Values["WhiteBalance.Temperature"].Value.ToString());
			writer.WriteLine("Green=" + ((double)Values["WhiteBalance.Green"].Value).ToString(digits, culture));
			writer.WriteLine("Equal=" + ((double)Values["WhiteBalance.Equal"].Value).ToString(digits, culture));
			writer.WriteLine();
			writer.WriteLine("[Color appearance]");
			writer.WriteLine("Enabled=" + Values["Colorappearance.Enabled"].Value.ToString().ToLower());
			writer.WriteLine("Degree=" + Values["Colorappearance.Degree"].Value.ToString());
			writer.WriteLine("AutoDegree=" + Values["Colorappearance.AutoDegree"].Value.ToString().ToLower());
			writer.WriteLine("Surround=" + Values["Colorappearance.Surround"].Value.ToString());
			writer.WriteLine("AdaptLum=" + ((double)Values["Colorappearance.AdaptLum"].Value).ToString(digits, culture));
			writer.WriteLine("Badpixsl=" + Values["Colorappearance.Badpixsl"].Value.ToString());
			writer.WriteLine("Model=" + Values["Colorappearance.Model"].Value.ToString());
			writer.WriteLine("Algorithm=" + Values["Colorappearance.Algorithm"].Value.ToString());
			writer.WriteLine("J-Light=" + ((double)Values["Colorappearance.J-Light"].Value).ToString(digits, culture));
			writer.WriteLine("Q-Bright=" + ((double)Values["Colorappearance.Q-Bright"].Value).ToString(digits, culture));
			writer.WriteLine("C-Chroma=" + Values["Colorappearance.C-Chroma"].Value.ToString());
			writer.WriteLine("S-Chroma=" + ((double)Values["Colorappearance.S-Chroma"].Value).ToString(digits, culture));
			writer.WriteLine("M-Chroma=" + ((double)Values["Colorappearance.M-Chroma"].Value).ToString(digits, culture));
			writer.WriteLine("J-Contrast=" + ((double)Values["Colorappearance.J-Contrast"].Value).ToString(digits, culture));
			writer.WriteLine("Q-Contrast=" + ((double)Values["Colorappearance.Q-Contrast"].Value).ToString(digits, culture));
			writer.WriteLine("H-Hue=" + ((double)Values["Colorappearance.H-Hue"].Value).ToString(digits, culture));
			writer.WriteLine("RSTProtection=" + ((double)Values["Colorappearance.RSTProtection"].Value).ToString(digits, culture));
			writer.WriteLine("AdaptScene=" + ((double)Values["Colorappearance.AdaptScene"].Value).ToString(digits, culture));
			writer.WriteLine("AutoAdapscen=" + Values["Colorappearance.AutoAdapscen"].Value.ToString().ToLower());
			writer.WriteLine("SurrSource=" + Values["Colorappearance.SurrSource"].Value.ToString().ToLower());
			writer.WriteLine("Gamut=" + Values["Colorappearance.Gamut"].Value.ToString().ToLower());
			writer.WriteLine("Datacie=" + Values["Colorappearance.Datacie"].Value.ToString().ToLower());
			writer.WriteLine("Tonecie=" + Values["Colorappearance.Tonecie"].Value.ToString().ToLower());
			writer.WriteLine("CurveMode=" + Values["Colorappearance.CurveMode"].Value.ToString());
			writer.WriteLine("CurveMode2=" + Values["Colorappearance.CurveMode2"].Value.ToString());
			writer.WriteLine("CurveMode3=" + Values["Colorappearance.CurveMode3"].Value.ToString());
			writer.WriteLine("Curve=" + ((PP3Curve)Values["Colorappearance.Curve"].Value).ToString());
			writer.WriteLine("Curve2=" + ((PP3Curve)Values["Colorappearance.Curve2"].Value).ToString());
			writer.WriteLine("Curve3=" + ((PP3Curve)Values["Colorappearance.Curve3"].Value).ToString());
			writer.WriteLine();
			writer.WriteLine("[Impulse Denoising]");
			writer.WriteLine("Enabled=" + Values["ImpulseDenoising.Enabled"].Value.ToString().ToLower());
			writer.WriteLine("Threshold=" + Values["ImpulseDenoising.Threshold"].Value.ToString());
			writer.WriteLine();
			writer.WriteLine("[Defringing]");
			writer.WriteLine("Enabled=" + Values["Defringing.Enabled"].Value.ToString().ToLower());
			writer.WriteLine("Radius=" + ((double)Values["Defringing.Radius"].Value).ToString(digits, culture));
			writer.WriteLine("Threshold=" + Values["Defringing.Threshold"].Value.ToString());
			writer.WriteLine("HueCurve=" + ((PP3Curve)Values["Defringing.HueCurve"].Value).ToString());
			writer.WriteLine();
			writer.WriteLine("[Directional Pyramid Denoising]");
			writer.WriteLine("Enabled=" + Values["DirectionalPyramidDenoising.Enabled"].Value.ToString().ToLower());
			writer.WriteLine("Enhance=" + Values["DirectionalPyramidDenoising.Enhance"].Value.ToString().ToLower());
			writer.WriteLine("Median=" + Values["DirectionalPyramidDenoising.Median"].Value.ToString().ToLower());
			writer.WriteLine("Auto=" + Values["DirectionalPyramidDenoising.Auto"].Value.ToString().ToLower());
			writer.WriteLine("Luma=" + ((double)Values["DirectionalPyramidDenoising.Luma"].Value).ToString(digits, culture));
			writer.WriteLine("Ldetail=" + ((double)Values["DirectionalPyramidDenoising.Ldetail"].Value).ToString(digits, culture));
			writer.WriteLine("Chroma=" + ((double)Values["DirectionalPyramidDenoising.Chroma"].Value).ToString(digits, culture));
			writer.WriteLine("Method=" + Values["DirectionalPyramidDenoising.Method"].Value.ToString());
			writer.WriteLine("LMethod=" + Values["DirectionalPyramidDenoising.LMethod"].Value.ToString());
			writer.WriteLine("CMethod=" + Values["DirectionalPyramidDenoising.CMethod"].Value.ToString());
			writer.WriteLine("C2Method=" + Values["DirectionalPyramidDenoising.C2Method"].Value.ToString());
			writer.WriteLine("SMethod=" + Values["DirectionalPyramidDenoising.SMethod"].Value.ToString());
			writer.WriteLine("MedMethod=" + Values["DirectionalPyramidDenoising.MedMethod"].Value.ToString());
			writer.WriteLine("RGBMethod=" + Values["DirectionalPyramidDenoising.RGBMethod"].Value.ToString());
			writer.WriteLine("MethodMed=" + Values["DirectionalPyramidDenoising.MethodMed"].Value.ToString());
			writer.WriteLine("Redchro=" + ((double)Values["DirectionalPyramidDenoising.Redchro"].Value).ToString(digits, culture));
			writer.WriteLine("Bluechro=" + ((double)Values["DirectionalPyramidDenoising.Bluechro"].Value).ToString(digits, culture));
			writer.WriteLine("Gamma=" + ((double)Values["DirectionalPyramidDenoising.Gamma"].Value).ToString(digits, culture));
			writer.WriteLine("Passes=" + Values["DirectionalPyramidDenoising.Passes"].Value.ToString());
			writer.WriteLine("LCurve=" + ((PP3Curve)Values["DirectionalPyramidDenoising.LCurve"].Value).ToString());
			writer.WriteLine("CCCurve=" + ((PP3Curve)Values["DirectionalPyramidDenoising.CCCurve"].Value).ToString());
			writer.WriteLine();
			writer.WriteLine("[EPD]");
			writer.WriteLine("Enabled=" + Values["EPD.Enabled"].Value.ToString().ToLower());
			writer.WriteLine("Strength=" + ((double)Values["EPD.Strength"].Value).ToString(digits, culture));
			writer.WriteLine("EdgeStopping=" + ((double)Values["EPD.EdgeStopping"].Value).ToString(digits, culture));
			writer.WriteLine("Scale=" + ((double)Values["EPD.Scale"].Value).ToString(digits, culture));
			writer.WriteLine("ReweightingIterates=" + Values["EPD.ReweightingIterates"].Value.ToString());
			writer.WriteLine();
			writer.WriteLine("[Shadows & Highlights]");
			writer.WriteLine("Enabled=" + Values["ShadowsAndHighlights.Enabled"].Value.ToString().ToLower());
			writer.WriteLine("HighQuality=" + Values["ShadowsAndHighlights.HighQuality"].Value.ToString().ToLower());
			writer.WriteLine("Highlights=" + Values["ShadowsAndHighlights.Highlights"].Value.ToString());
			writer.WriteLine("HighlightTonalWidth=" + Values["ShadowsAndHighlights.HighlightTonalWidth"].Value.ToString());
			writer.WriteLine("Shadows=" + Values["ShadowsAndHighlights.Shadows"].Value.ToString());
			writer.WriteLine("ShadowTonalWidth=" + Values["ShadowsAndHighlights.ShadowTonalWidth"].Value.ToString());
			writer.WriteLine("LocalContrast=" + Values["ShadowsAndHighlights.LocalContrast"].Value.ToString());
			writer.WriteLine("Radius=" + Values["ShadowsAndHighlights.Radius"].Value.ToString());
			writer.WriteLine();
			writer.WriteLine("[Crop]");
			writer.WriteLine("Enabled=" + Values["Crop.Enabled"].Value.ToString().ToLower());
			writer.WriteLine("X=" + Values["Crop.X"].Value.ToString());
			writer.WriteLine("Y=" + Values["Crop.Y"].Value.ToString());
			writer.WriteLine("W=" + Values["Crop.W"].Value.ToString());
			writer.WriteLine("H=" + Values["Crop.H"].Value.ToString());
			writer.WriteLine("FixedRatio=" + Values["Crop.FixedRatio"].Value.ToString().ToLower());
			writer.WriteLine("Ratio=" + Values["Crop.Ratio"].Value.ToString());
			writer.WriteLine("Orientation=" + Values["Crop.Orientation"].Value.ToString());
			writer.WriteLine("Guide=" + Values["Crop.Guide"].Value.ToString());
			writer.WriteLine();
			writer.WriteLine("[Coarse Transformation]");
			writer.WriteLine("Rotate=" + Values["CoarseTransformation.Rotate"].Value.ToString());
			writer.WriteLine("HorizontalFlip=" + Values["CoarseTransformation.HorizontalFlip"].Value.ToString().ToLower());
			writer.WriteLine("VerticalFlip=" + Values["CoarseTransformation.VerticalFlip"].Value.ToString().ToLower());
			writer.WriteLine();
			writer.WriteLine("[Common Properties for Transformations]");
			writer.WriteLine("AutoFill=" + Values["CommonPropertiesforTransformations.AutoFill"].Value.ToString().ToLower());
			writer.WriteLine();
			writer.WriteLine("[Rotation]");
			writer.WriteLine("Degree=" + ((double)Values["Rotation.Degree"].Value).ToString(digits, culture));
			writer.WriteLine();
			writer.WriteLine("[Distortion]");
			writer.WriteLine("Amount=" + ((double)Values["Distortion.Amount"].Value).ToString(digits, culture));
			writer.WriteLine();
			writer.WriteLine("[LensProfile]");
			writer.WriteLine("LCPFile=" + Values["LensProfile.LCPFile"].Value.ToString());
			writer.WriteLine("UseDistortion=" + Values["LensProfile.UseDistortion"].Value.ToString().ToLower());
			writer.WriteLine("UseVignette=" + Values["LensProfile.UseVignette"].Value.ToString().ToLower());
			writer.WriteLine("UseCA=" + Values["LensProfile.UseCA"].Value.ToString().ToLower());
			writer.WriteLine();
			writer.WriteLine("[Perspective]");
			writer.WriteLine("Horizontal=" + ((double)Values["Perspective.Horizontal"].Value).ToString(digits, culture));
			writer.WriteLine("Vertical=" + ((double)Values["Perspective.Vertical"].Value).ToString(digits, culture));
			writer.WriteLine();
			writer.WriteLine("[Gradient]");
			writer.WriteLine("Enabled=" + Values["Gradient.Enabled"].Value.ToString().ToLower());
			writer.WriteLine("Degree=" + Values["Gradient.Degree"].Value.ToString());
			writer.WriteLine("Feather=" + Values["Gradient.Feather"].Value.ToString());
			writer.WriteLine("Strength=" + ((double)Values["Gradient.Strength"].Value).ToString(digits, culture));
			writer.WriteLine("CenterX=" + Values["Gradient.CenterX"].Value.ToString());
			writer.WriteLine("CenterY=" + Values["Gradient.CenterY"].Value.ToString());
			writer.WriteLine();
			writer.WriteLine("[PCVignette]");
			writer.WriteLine("Enabled=" + Values["PCVignette.Enabled"].Value.ToString().ToLower());
			writer.WriteLine("Strength=" + ((double)Values["PCVignette.Strength"].Value).ToString(digits, culture));
			writer.WriteLine("Feather=" + Values["PCVignette.Feather"].Value.ToString());
			writer.WriteLine("Roundness=" + Values["PCVignette.Roundness"].Value.ToString());
			writer.WriteLine();
			writer.WriteLine("[CACorrection]");
			writer.WriteLine("Red=" + ((double)Values["CACorrection.Red"].Value).ToString(digits, culture));
			writer.WriteLine("Blue=" + ((double)Values["CACorrection.Blue"].Value).ToString(digits, culture));
			writer.WriteLine();
			writer.WriteLine("[Vignetting Correction]");
			writer.WriteLine("Amount=" + Values["VignettingCorrection.Amount"].Value.ToString());
			writer.WriteLine("Radius=" + Values["VignettingCorrection.Radius"].Value.ToString());
			writer.WriteLine("Strength=" + Values["VignettingCorrection.Strength"].Value.ToString());
			writer.WriteLine("CenterX=" + Values["VignettingCorrection.CenterX"].Value.ToString());
			writer.WriteLine("CenterY=" + Values["VignettingCorrection.CenterY"].Value.ToString());
			writer.WriteLine();
			writer.WriteLine("[Resize]");
			writer.WriteLine("Enabled=" + Values["Resize.Enabled"].Value.ToString().ToLower());
			writer.WriteLine("Scale=" + ((double)Values["Resize.Scale"].Value).ToString(digits, culture));
			writer.WriteLine("AppliesTo=" + Values["Resize.AppliesTo"].Value.ToString());
			writer.WriteLine("Method=" + Values["Resize.Method"].Value.ToString());
			writer.WriteLine("DataSpecified=" + Values["Resize.DataSpecified"].Value.ToString());
			writer.WriteLine("Width=" + Values["Resize.Width"].Value.ToString());
			writer.WriteLine("Height=" + Values["Resize.Height"].Value.ToString());
			writer.WriteLine();
			writer.WriteLine("[Color Management]");
			writer.WriteLine("InputProfile=" + Values["ColorManagement.InputProfile"].Value.ToString());
			writer.WriteLine("ToneCurve=" + Values["ColorManagement.ToneCurve"].Value.ToString().ToLower());
			writer.WriteLine("BlendCMSMatrix=" + Values["ColorManagement.BlendCMSMatrix"].Value.ToString().ToLower());
			writer.WriteLine("DCPIlluminant=" + Values["ColorManagement.DCPIlluminant"].Value.ToString());
			writer.WriteLine("WorkingProfile=" + Values["ColorManagement.WorkingProfile"].Value.ToString());
			writer.WriteLine("OutputProfile=" + Values["ColorManagement.OutputProfile"].Value.ToString());
			writer.WriteLine("Gammafree=" + Values["ColorManagement.Gammafree"].Value.ToString());
			writer.WriteLine("Freegamma=" + Values["ColorManagement.Freegamma"].Value.ToString().ToLower());
			writer.WriteLine("GammaValue=" + ((double)Values["ColorManagement.GammaValue"].Value).ToString(digits, culture));
			writer.WriteLine("GammaSlope=" + ((double)Values["ColorManagement.GammaSlope"].Value).ToString(digits, culture));
			writer.WriteLine();
			writer.WriteLine("[Directional Pyramid Equalizer]");
			writer.WriteLine("Enabled=" + Values["DirectionalPyramidEqualizer.Enabled"].Value.ToString().ToLower());
			writer.WriteLine("Gamutlab=" + Values["DirectionalPyramidEqualizer.Gamutlab"].Value.ToString().ToLower());
			writer.WriteLine("Mult0=" + ((double)Values["DirectionalPyramidEqualizer.Mult0"].Value).ToString(digits, culture));
			writer.WriteLine("Mult1=" + ((double)Values["DirectionalPyramidEqualizer.Mult1"].Value).ToString(digits, culture));
			writer.WriteLine("Mult2=" + ((double)Values["DirectionalPyramidEqualizer.Mult2"].Value).ToString(digits, culture));
			writer.WriteLine("Mult3=" + ((double)Values["DirectionalPyramidEqualizer.Mult3"].Value).ToString(digits, culture));
			writer.WriteLine("Mult4=" + ((double)Values["DirectionalPyramidEqualizer.Mult4"].Value).ToString(digits, culture));
			writer.WriteLine("Threshold=" + ((double)Values["DirectionalPyramidEqualizer.Threshold"].Value).ToString(digits, culture));
			writer.WriteLine("Skinprotect=" + Values["DirectionalPyramidEqualizer.Skinprotect"].Value.ToString());
			writer.WriteLine("Hueskin=" + ((PP3Curve)Values["DirectionalPyramidEqualizer.Hueskin"].Value).ToString());
			writer.WriteLine();
			writer.WriteLine("[HSV Equalizer]");
			writer.WriteLine("HCurve=" + ((PP3Curve)Values["HSVEqualizer.HCurve"].Value).ToString());
			writer.WriteLine("SCurve=" + ((PP3Curve)Values["HSVEqualizer.SCurve"].Value).ToString());
			writer.WriteLine("VCurve=" + ((PP3Curve)Values["HSVEqualizer.VCurve"].Value).ToString());
			writer.WriteLine();
			writer.WriteLine("[Film Simulation]");
			writer.WriteLine("Enabled=" + Values["FilmSimulation.Enabled"].Value.ToString().ToLower());
			writer.WriteLine("ClutFilename=" + Values["FilmSimulation.ClutFilename"].Value.ToString());
			writer.WriteLine("Strength=" + Values["FilmSimulation.Strength"].Value.ToString());
			writer.WriteLine();
			writer.WriteLine("[RGB Curves]");
			writer.WriteLine("LumaMode=" + Values["RGBCurves.LumaMode"].Value.ToString().ToLower());
			writer.WriteLine("rCurve=" + ((PP3Curve)Values["RGBCurves.rCurve"].Value).ToString());
			writer.WriteLine("gCurve=" + ((PP3Curve)Values["RGBCurves.gCurve"].Value).ToString());
			writer.WriteLine("bCurve=" + ((PP3Curve)Values["RGBCurves.bCurve"].Value).ToString());
			writer.WriteLine();
			writer.WriteLine("[ColorToning]");
			writer.WriteLine("Enabled=" + Values["ColorToning.Enabled"].Value.ToString().ToLower());
			writer.WriteLine("Method=" + Values["ColorToning.Method"].Value.ToString());
			writer.WriteLine("Lumamode=" + Values["ColorToning.Lumamode"].Value.ToString().ToLower());
			writer.WriteLine("Twocolor=" + Values["ColorToning.Twocolor"].Value.ToString());
			writer.WriteLine("Redlow=" + Values["ColorToning.Redlow"].Value.ToString());
			writer.WriteLine("Greenlow=" + Values["ColorToning.Greenlow"].Value.ToString());
			writer.WriteLine("Bluelow=" + Values["ColorToning.Bluelow"].Value.ToString());
			writer.WriteLine("Satlow=" + Values["ColorToning.Satlow"].Value.ToString());
			writer.WriteLine("Balance=" + Values["ColorToning.Balance"].Value.ToString());
			writer.WriteLine("Sathigh=" + Values["ColorToning.Sathigh"].Value.ToString());
			writer.WriteLine("Redmed=" + Values["ColorToning.Redmed"].Value.ToString());
			writer.WriteLine("Greenmed=" + Values["ColorToning.Greenmed"].Value.ToString());
			writer.WriteLine("Bluemed=" + Values["ColorToning.Bluemed"].Value.ToString());
			writer.WriteLine("Redhigh=" + Values["ColorToning.Redhigh"].Value.ToString());
			writer.WriteLine("Greenhigh=" + Values["ColorToning.Greenhigh"].Value.ToString());
			writer.WriteLine("Bluehigh=" + Values["ColorToning.Bluehigh"].Value.ToString());
			writer.WriteLine("Autosat=" + Values["ColorToning.Autosat"].Value.ToString().ToLower());
			writer.WriteLine("OpacityCurve=" + ((PP3Curve)Values["ColorToning.OpacityCurve"].Value).ToString());
			writer.WriteLine("ColorCurve=" + ((PP3Curve)Values["ColorToning.ColorCurve"].Value).ToString());
			writer.WriteLine("SatProtectionThreshold=" + Values["ColorToning.SatProtectionThreshold"].Value.ToString());
			writer.WriteLine("SaturatedOpacity=" + Values["ColorToning.SaturatedOpacity"].Value.ToString());
			writer.WriteLine("Strength=" + Values["ColorToning.Strength"].Value.ToString());
			writer.WriteLine("HighlightsColorSaturation=" + ((PP3Curve)Values["ColorToning.HighlightsColorSaturation"].Value).ToString());
			writer.WriteLine("ShadowsColorSaturation=" + ((PP3Curve)Values["ColorToning.ShadowsColorSaturation"].Value).ToString());
			writer.WriteLine("ClCurve=" + ((PP3Curve)Values["ColorToning.ClCurve"].Value).ToString());
			writer.WriteLine("Cl2Curve=" + ((PP3Curve)Values["ColorToning.Cl2Curve"].Value).ToString());
			writer.WriteLine();
			writer.WriteLine("[RAW]");
			writer.WriteLine("DarkFrame=" + Values["RAW.DarkFrame"].Value.ToString());
			writer.WriteLine("DarkFrameAuto=" + Values["RAW.DarkFrameAuto"].Value.ToString().ToLower());
			writer.WriteLine("FlatFieldFile=" + Values["RAW.FlatFieldFile"].Value.ToString());
			writer.WriteLine("FlatFieldAutoSelect=" + Values["RAW.FlatFieldAutoSelect"].Value.ToString().ToLower());
			writer.WriteLine("FlatFieldBlurRadius=" + Values["RAW.FlatFieldBlurRadius"].Value.ToString());
			writer.WriteLine("FlatFieldBlurType=" + Values["RAW.FlatFieldBlurType"].Value.ToString());
			writer.WriteLine("FlatFieldAutoClipControl=" + Values["RAW.FlatFieldAutoClipControl"].Value.ToString().ToLower());
			writer.WriteLine("FlatFieldClipControl=" + Values["RAW.FlatFieldClipControl"].Value.ToString().ToLower());
			writer.WriteLine("CA=" + Values["RAW.CA"].Value.ToString().ToLower());
			writer.WriteLine("CARed=" + ((double)Values["RAW.CARed"].Value).ToString(digits, culture));
			writer.WriteLine("CABlue=" + ((double)Values["RAW.CABlue"].Value).ToString(digits, culture));
			writer.WriteLine("HotPixelFilter=" + Values["RAW.HotPixelFilter"].Value.ToString().ToLower());
			writer.WriteLine("DeadPixelFilter=" + Values["RAW.DeadPixelFilter"].Value.ToString().ToLower());
			writer.WriteLine("HotDeadPixelThresh=" + Values["RAW.HotDeadPixelThresh"].Value.ToString());
			writer.WriteLine("PreExposure=" + ((double)Values["RAW.PreExposure"].Value).ToString(digits, culture));
			writer.WriteLine("PrePreserv=" + ((double)Values["RAW.PrePreserv"].Value).ToString(digits, culture));
			writer.WriteLine();
			writer.WriteLine("[RAW Bayer]");
			writer.WriteLine("Method=" + Values["RAWBayer.Method"].Value.ToString());
			writer.WriteLine("CcSteps=" + Values["RAWBayer.CcSteps"].Value.ToString());
			writer.WriteLine("PreBlack0=" + ((double)Values["RAWBayer.PreBlack0"].Value).ToString(digits, culture));
			writer.WriteLine("PreBlack1=" + ((double)Values["RAWBayer.PreBlack1"].Value).ToString(digits, culture));
			writer.WriteLine("PreBlack2=" + ((double)Values["RAWBayer.PreBlack2"].Value).ToString(digits, culture));
			writer.WriteLine("PreBlack3=" + ((double)Values["RAWBayer.PreBlack3"].Value).ToString(digits, culture));
			writer.WriteLine("PreTwoGreen=" + Values["RAWBayer.PreTwoGreen"].Value.ToString().ToLower());
			writer.WriteLine("LineDenoise=" + Values["RAWBayer.LineDenoise"].Value.ToString());
			writer.WriteLine("GreenEqThreshold=" + Values["RAWBayer.GreenEqThreshold"].Value.ToString());
			writer.WriteLine("DCBIterations=" + Values["RAWBayer.DCBIterations"].Value.ToString());
			writer.WriteLine("DCBEnhance=" + Values["RAWBayer.DCBEnhance"].Value.ToString().ToLower());
			writer.WriteLine("LMMSEIterations=" + Values["RAWBayer.LMMSEIterations"].Value.ToString());
			writer.WriteLine();
			writer.WriteLine("[RAW X-Trans]");
			writer.WriteLine("Method=" + Values["RAWX-Trans.Method"].Value.ToString());
			writer.WriteLine("CcSteps=" + Values["RAWX-Trans.CcSteps"].Value.ToString());
			writer.WriteLine("PreBlackRed=" + ((double)Values["RAWX-Trans.PreBlackRed"].Value).ToString(digits, culture));
			writer.WriteLine("PreBlackGreen=" + ((double)Values["RAWX-Trans.PreBlackGreen"].Value).ToString(digits, culture));
			writer.WriteLine("PreBlackBlue=" + ((double)Values["RAWX-Trans.PreBlackBlue"].Value).ToString(digits, culture));

		}

		private void Read321(string[] lines)
		{
			CultureInfo culture = new CultureInfo("en-US");
			List<string> Llines = lines.ToList();
			Llines.RemoveAll(t => String.IsNullOrWhiteSpace(t) || t.StartsWith("["));
			int i = 0;

			Values.Add("Version.AppVersion", new PP3entry("Version.AppVersion", GetValue(Llines[i]), null, null)); i++;
			FileVersion = Convert.ToInt32(GetValue(Llines[i])); i++;
			Values.Add("General.Rank", new PP3entry("General.Rank", Convert.ToInt32(GetValue(Llines[i])), 0, 0)); i++;
			Values.Add("General.ColorLabel", new PP3entry("General.ColorLabel", Convert.ToInt32(GetValue(Llines[i])), 0, 0)); i++;
			Values.Add("General.InTrash", new PP3entry("General.InTrash", Convert.ToBoolean(GetValue(Llines[i])), null, null)); i++;
			Values.Add("Exposure.Auto", new PP3entry("Exposure.Auto", Convert.ToBoolean(GetValue(Llines[i])), null, null)); i++;
			Values.Add("Exposure.Clip", new PP3entry("Exposure.Clip", Convert.ToDouble(GetValue(Llines[i]), culture), 0d, 0.99d)); i++;
			Compensation = Convert.ToDouble(GetValue(Llines[i]), culture); i++;
			Values.Add("Exposure.Brightness", new PP3entry("Exposure.Brightness", Convert.ToInt32(GetValue(Llines[i])), -100, 100)); i++;
			Values.Add("Exposure.Contrast", new PP3entry("Exposure.Contrast", Convert.ToInt32(GetValue(Llines[i])), -100, 100)); i++;
			Values.Add("Exposure.Saturation", new PP3entry("Exposure.Saturation", Convert.ToInt32(GetValue(Llines[i])), -100, 100)); i++;
			Values.Add("Exposure.Black", new PP3entry("Exposure.Black", Convert.ToInt32(GetValue(Llines[i])), -16384, 32768)); i++;
			Values.Add("Exposure.HighlightCompr", new PP3entry("Exposure.HighlightCompr", Convert.ToInt32(GetValue(Llines[i])), 0, 500)); i++;
			Values.Add("Exposure.HighlightComprThreshold", new PP3entry("Exposure.HighlightComprThreshold", Convert.ToInt32(GetValue(Llines[i])), 0, 100)); i++;
			Values.Add("Exposure.ShadowCompr", new PP3entry("Exposure.ShadowCompr", Convert.ToInt32(GetValue(Llines[i])), 0, 100)); i++;
			Values.Add("Exposure.CurveMode", new PP3entry("Exposure.CurveMode", GetValue(Llines[i]), null, null)); i++;
			Values.Add("Exposure.CurveMode2", new PP3entry("Exposure.CurveMode2", GetValue(Llines[i]), null, null)); i++;
			Values.Add("Exposure.Curve", new PP3entry("Exposure.Curve", PP3Curve.GetCurve(GetValue(Llines[i])), null, null)); i++;
			Values.Add("Exposure.Curve2", new PP3entry("Exposure.Curve2", PP3Curve.GetCurve(GetValue(Llines[i])), null, null)); i++;
			Values.Add("HLRecovery.Enabled", new PP3entry("HLRecovery.Enabled", Convert.ToBoolean(GetValue(Llines[i])), null, null)); i++;
			Values.Add("HLRecovery.Method", new PP3entry("HLRecovery.Method", GetValue(Llines[i]), null, null)); i++;
			Values.Add("ChannelMixer.Red", new PP3entry("ChannelMixer.Red", PP3Curve.GetCurve(GetValue(Llines[i])), null, null)); i++;
			Values.Add("ChannelMixer.Green", new PP3entry("ChannelMixer.Green", PP3Curve.GetCurve(GetValue(Llines[i])), null, null)); i++;
			Values.Add("ChannelMixer.Blue", new PP3entry("ChannelMixer.Blue", PP3Curve.GetCurve(GetValue(Llines[i])), null, null)); i++;
			Values.Add("BlackAndWhite.Enabled", new PP3entry("BlackAndWhite.Enabled", Convert.ToBoolean(GetValue(Llines[i])), null, null)); i++;
			Values.Add("BlackAndWhite.Method", new PP3entry("BlackAndWhite.Method", GetValue(Llines[i]), null, null)); i++;
			Values.Add("BlackAndWhite.Auto", new PP3entry("BlackAndWhite.Auto", Convert.ToBoolean(GetValue(Llines[i])), null, null)); i++;
			Values.Add("BlackAndWhite.ComplementaryColors", new PP3entry("BlackAndWhite.ComplementaryColors", Convert.ToBoolean(GetValue(Llines[i])), null, null)); i++;
			Values.Add("BlackAndWhite.Setting", new PP3entry("BlackAndWhite.Setting", GetValue(Llines[i]), null, null)); i++;
			Values.Add("BlackAndWhite.Filter", new PP3entry("BlackAndWhite.Filter", GetValue(Llines[i]), null, null)); i++;
			Values.Add("BlackAndWhite.MixerRed", new PP3entry("BlackAndWhite.MixerRed", Convert.ToInt32(GetValue(Llines[i])), -100, 200)); i++;
			Values.Add("BlackAndWhite.MixerOrange", new PP3entry("BlackAndWhite.MixerOrange", Convert.ToInt32(GetValue(Llines[i])), -100, 200)); i++;
			Values.Add("BlackAndWhite.MixerYellow", new PP3entry("BlackAndWhite.MixerYellow", Convert.ToInt32(GetValue(Llines[i])), -100, 200)); i++;
			Values.Add("BlackAndWhite.MixerGreen", new PP3entry("BlackAndWhite.MixerGreen", Convert.ToInt32(GetValue(Llines[i])), -100, 200)); i++;
			Values.Add("BlackAndWhite.MixerCyan", new PP3entry("BlackAndWhite.MixerCyan", Convert.ToInt32(GetValue(Llines[i])), -100, 200)); i++;
			Values.Add("BlackAndWhite.MixerBlue", new PP3entry("BlackAndWhite.MixerBlue", Convert.ToInt32(GetValue(Llines[i])), -100, 200)); i++;
			Values.Add("BlackAndWhite.MixerMagenta", new PP3entry("BlackAndWhite.MixerMagenta", Convert.ToInt32(GetValue(Llines[i])), -100, 200)); i++;
			Values.Add("BlackAndWhite.MixerPurple", new PP3entry("BlackAndWhite.MixerPurple", Convert.ToInt32(GetValue(Llines[i])), -100, 200)); i++;
			Values.Add("BlackAndWhite.GammaRed", new PP3entry("BlackAndWhite.GammaRed", Convert.ToInt32(GetValue(Llines[i])), -100, 100)); i++;
			Values.Add("BlackAndWhite.GammaGreen", new PP3entry("BlackAndWhite.GammaGreen", Convert.ToInt32(GetValue(Llines[i])), -100, 100)); i++;
			Values.Add("BlackAndWhite.GammaBlue", new PP3entry("BlackAndWhite.GammaBlue", Convert.ToInt32(GetValue(Llines[i])), -100, 100)); i++;
			Values.Add("BlackAndWhite.Algorithm", new PP3entry("BlackAndWhite.Algorithm", GetValue(Llines[i]), null, null)); i++;
			Values.Add("BlackAndWhite.LuminanceCurve", new PP3entry("BlackAndWhite.LuminanceCurve", PP3Curve.GetCurve(GetValue(Llines[i])), null, null)); i++;
			Values.Add("BlackAndWhite.BeforeCurveMode", new PP3entry("BlackAndWhite.BeforeCurveMode", GetValue(Llines[i]), null, null)); i++;
			Values.Add("BlackAndWhite.AfterCurveMode", new PP3entry("BlackAndWhite.AfterCurveMode", GetValue(Llines[i]), null, null)); i++;
			Values.Add("BlackAndWhite.BeforeCurve", new PP3entry("BlackAndWhite.BeforeCurve", PP3Curve.GetCurve(GetValue(Llines[i])), null, null)); i++;
			Values.Add("BlackAndWhite.AfterCurve", new PP3entry("BlackAndWhite.AfterCurve", PP3Curve.GetCurve(GetValue(Llines[i])), null, null)); i++;
			Values.Add("LuminanceCurve.Brightness", new PP3entry("LuminanceCurve.Brightness", Convert.ToInt32(GetValue(Llines[i])), -100, 100)); i++;
			Values.Add("LuminanceCurve.Contrast", new PP3entry("LuminanceCurve.Contrast", Convert.ToInt32(GetValue(Llines[i])), -100, 100)); i++;
			Values.Add("LuminanceCurve.Chromaticity", new PP3entry("LuminanceCurve.Chromaticity", Convert.ToInt32(GetValue(Llines[i])), -100, 100)); i++;
			Values.Add("LuminanceCurve.AvoidColorShift", new PP3entry("LuminanceCurve.AvoidColorShift", Convert.ToBoolean(GetValue(Llines[i])), null, null)); i++;
			Values.Add("LuminanceCurve.RedAndSkinTonesProtection", new PP3entry("LuminanceCurve.RedAndSkinTonesProtection", Convert.ToDouble(GetValue(Llines[i]), culture), 0d, 100d)); i++;
			Values.Add("LuminanceCurve.LCredsk", new PP3entry("LuminanceCurve.LCredsk", Convert.ToBoolean(GetValue(Llines[i])), null, null)); i++;
			Values.Add("LuminanceCurve.LCurve", new PP3entry("LuminanceCurve.LCurve", PP3Curve.GetCurve(GetValue(Llines[i])), null, null)); i++;
			Values.Add("LuminanceCurve.aCurve", new PP3entry("LuminanceCurve.aCurve", PP3Curve.GetCurve(GetValue(Llines[i])), null, null)); i++;
			Values.Add("LuminanceCurve.bCurve", new PP3entry("LuminanceCurve.bCurve", PP3Curve.GetCurve(GetValue(Llines[i])), null, null)); i++;
			Values.Add("LuminanceCurve.ccCurve", new PP3entry("LuminanceCurve.ccCurve", PP3Curve.GetCurve(GetValue(Llines[i])), null, null)); i++;
			Values.Add("LuminanceCurve.chCurve", new PP3entry("LuminanceCurve.chCurve", PP3Curve.GetCurve(GetValue(Llines[i])), null, null)); i++;
			Values.Add("LuminanceCurve.lhCurve", new PP3entry("LuminanceCurve.lhCurve", PP3Curve.GetCurve(GetValue(Llines[i])), null, null)); i++;
			Values.Add("LuminanceCurve.hhCurve", new PP3entry("LuminanceCurve.hhCurve", PP3Curve.GetCurve(GetValue(Llines[i])), null, null)); i++;
			Values.Add("LuminanceCurve.LcCurve", new PP3entry("LuminanceCurve.LcCurve", PP3Curve.GetCurve(GetValue(Llines[i])), null, null)); i++;
			Values.Add("LuminanceCurve.ClCurve", new PP3entry("LuminanceCurve.ClCurve", PP3Curve.GetCurve(GetValue(Llines[i])), null, null)); i++;
			Values.Add("Sharpening.Enabled", new PP3entry("Sharpening.Enabled", Convert.ToBoolean(GetValue(Llines[i])), null, null)); i++;
			Values.Add("Sharpening.Method", new PP3entry("Sharpening.Method", GetValue(Llines[i]), null, null)); i++;
			Values.Add("Sharpening.Radius", new PP3entry("Sharpening.Radius", Convert.ToDouble(GetValue(Llines[i]), culture), 0.3d, 3d)); i++;
			Values.Add("Sharpening.Amount", new PP3entry("Sharpening.Amount", Convert.ToInt32(GetValue(Llines[i])), 1, 1000)); i++;
			Values.Add("Sharpening.Threshold", new PP3entry("Sharpening.Threshold", PP3Curve.GetCurve(GetValue(Llines[i])), null, null)); i++;
			Values.Add("Sharpening.OnlyEdges", new PP3entry("Sharpening.OnlyEdges", Convert.ToBoolean(GetValue(Llines[i])), null, null)); i++;
			Values.Add("Sharpening.EdgedetectionRadius", new PP3entry("Sharpening.EdgedetectionRadius", Convert.ToDouble(GetValue(Llines[i]), culture), 0.5d, 2.5d)); i++;
			Values.Add("Sharpening.EdgeTolerance", new PP3entry("Sharpening.EdgeTolerance", Convert.ToInt32(GetValue(Llines[i])), 10, 10000)); i++;
			Values.Add("Sharpening.HalocontrolEnabled", new PP3entry("Sharpening.HalocontrolEnabled", Convert.ToBoolean(GetValue(Llines[i])), null, null)); i++;
			Values.Add("Sharpening.HalocontrolAmount", new PP3entry("Sharpening.HalocontrolAmount", Convert.ToInt32(GetValue(Llines[i])), 1, 100)); i++;
			Values.Add("Sharpening.DeconvRadius", new PP3entry("Sharpening.DeconvRadius", Convert.ToDouble(GetValue(Llines[i]), culture), 0.5d, 2.5d)); i++;
			Values.Add("Sharpening.DeconvAmount", new PP3entry("Sharpening.DeconvAmount", Convert.ToInt32(GetValue(Llines[i])), 0, 100)); i++;
			Values.Add("Sharpening.DeconvDamping", new PP3entry("Sharpening.DeconvDamping", Convert.ToInt32(GetValue(Llines[i])), 0, 100)); i++;
			Values.Add("Sharpening.DeconvIterations", new PP3entry("Sharpening.DeconvIterations", Convert.ToInt32(GetValue(Llines[i])), 5, 100)); i++;
			Values.Add("Vibrance.Enabled", new PP3entry("Vibrance.Enabled", Convert.ToBoolean(GetValue(Llines[i])), null, null)); i++;
			Values.Add("Vibrance.Pastels", new PP3entry("Vibrance.Pastels", Convert.ToInt32(GetValue(Llines[i])), -100, 100)); i++;
			Values.Add("Vibrance.Saturated", new PP3entry("Vibrance.Saturated", Convert.ToInt32(GetValue(Llines[i])), -100, 100)); i++;
			Values.Add("Vibrance.PSThreshold", new PP3entry("Vibrance.PSThreshold", PP3Curve.GetCurve(GetValue(Llines[i])), null, null)); i++;
			Values.Add("Vibrance.ProtectSkins", new PP3entry("Vibrance.ProtectSkins", Convert.ToBoolean(GetValue(Llines[i])), null, null)); i++;
			Values.Add("Vibrance.AvoidColorShift", new PP3entry("Vibrance.AvoidColorShift", Convert.ToBoolean(GetValue(Llines[i])), null, null)); i++;
			Values.Add("Vibrance.PastSatTog", new PP3entry("Vibrance.PastSatTog", Convert.ToBoolean(GetValue(Llines[i])), null, null)); i++;
			Values.Add("Vibrance.SkinTonesCurve", new PP3entry("Vibrance.SkinTonesCurve", PP3Curve.GetCurve(GetValue(Llines[i])), null, null)); i++;
			Values.Add("SharpenEdge.Enabled", new PP3entry("SharpenEdge.Enabled", Convert.ToBoolean(GetValue(Llines[i])), null, null)); i++;
			Values.Add("SharpenEdge.Passes", new PP3entry("SharpenEdge.Passes", Convert.ToInt32(GetValue(Llines[i])), 1, 4)); i++;
			Values.Add("SharpenEdge.Strength", new PP3entry("SharpenEdge.Strength", Convert.ToInt32(GetValue(Llines[i])), 0, 100)); i++;
			Values.Add("SharpenEdge.ThreeChannels", new PP3entry("SharpenEdge.ThreeChannels", Convert.ToBoolean(GetValue(Llines[i])), null, null)); i++;
			Values.Add("SharpenMicro.Enabled", new PP3entry("SharpenMicro.Enabled", Convert.ToBoolean(GetValue(Llines[i])), null, null)); i++;
			Values.Add("SharpenMicro.Matrix", new PP3entry("SharpenMicro.Matrix", Convert.ToBoolean(GetValue(Llines[i])), null, null)); i++;
			Values.Add("SharpenMicro.Strength", new PP3entry("SharpenMicro.Strength", Convert.ToInt32(GetValue(Llines[i])), 0, 100)); i++;
			Values.Add("SharpenMicro.Uniformity", new PP3entry("SharpenMicro.Uniformity", Convert.ToInt32(GetValue(Llines[i])), 0, 100)); i++;
			Values.Add("WhiteBalance.Setting", new PP3entry("WhiteBalance.Setting", GetValue(Llines[i]), null, null)); i++;
			Values.Add("WhiteBalance.Temperature", new PP3entry("WhiteBalance.Temperature", Convert.ToInt32(GetValue(Llines[i])), 1500, 60000)); i++;
			Values.Add("WhiteBalance.Green", new PP3entry("WhiteBalance.Green", Convert.ToDouble(GetValue(Llines[i]), culture), 0.02d, 5d)); i++;
			Values.Add("WhiteBalance.Equal", new PP3entry("WhiteBalance.Equal", Convert.ToDouble(GetValue(Llines[i]), culture), 0.8d, 1.5d)); i++;
			Values.Add("Colorappearance.Enabled", new PP3entry("Colorappearance.Enabled", Convert.ToBoolean(GetValue(Llines[i])), null, null)); i++;
			Values.Add("Colorappearance.Degree", new PP3entry("Colorappearance.Degree", Convert.ToInt32(GetValue(Llines[i])), 0, 100)); i++;
			Values.Add("Colorappearance.AutoDegree", new PP3entry("Colorappearance.AutoDegree", Convert.ToBoolean(GetValue(Llines[i])), null, null)); i++;
			Values.Add("Colorappearance.Surround", new PP3entry("Colorappearance.Surround", GetValue(Llines[i]), null, null)); i++;
			Values.Add("Colorappearance.AdaptLum", new PP3entry("Colorappearance.AdaptLum", Convert.ToDouble(GetValue(Llines[i]), culture), 0.1d, 1000d)); i++;
			Values.Add("Colorappearance.Badpixsl", new PP3entry("Colorappearance.Badpixsl", Convert.ToInt32(GetValue(Llines[i])), 0, 2)); i++;
			Values.Add("Colorappearance.Model", new PP3entry("Colorappearance.Model", GetValue(Llines[i]), null, null)); i++;
			Values.Add("Colorappearance.Algorithm", new PP3entry("Colorappearance.Algorithm", GetValue(Llines[i]), null, null)); i++;
			Values.Add("Colorappearance.J-Light", new PP3entry("Colorappearance.J-Light", Convert.ToDouble(GetValue(Llines[i]), culture), -100d, 100d)); i++;
			Values.Add("Colorappearance.Q-Bright", new PP3entry("Colorappearance.Q-Bright", Convert.ToDouble(GetValue(Llines[i]), culture), -100d, 100d)); i++;
			Values.Add("Colorappearance.C-Chroma", new PP3entry("Colorappearance.C-Chroma", Convert.ToInt32(GetValue(Llines[i])), -100, 100)); i++;
			Values.Add("Colorappearance.S-Chroma", new PP3entry("Colorappearance.S-Chroma", Convert.ToDouble(GetValue(Llines[i]), culture), -100d, 100d)); i++;
			Values.Add("Colorappearance.M-Chroma", new PP3entry("Colorappearance.M-Chroma", Convert.ToDouble(GetValue(Llines[i]), culture), -100d, 100d)); i++;
			Values.Add("Colorappearance.J-Contrast", new PP3entry("Colorappearance.J-Contrast", Convert.ToDouble(GetValue(Llines[i]), culture), -100d, 100d)); i++;
			Values.Add("Colorappearance.Q-Contrast", new PP3entry("Colorappearance.Q-Contrast", Convert.ToDouble(GetValue(Llines[i]), culture), -100d, 100d)); i++;
			Values.Add("Colorappearance.H-Hue", new PP3entry("Colorappearance.H-Hue", Convert.ToDouble(GetValue(Llines[i]), culture), -100d, 100d)); i++;
			Values.Add("Colorappearance.RSTProtection", new PP3entry("Colorappearance.RSTProtection", Convert.ToDouble(GetValue(Llines[i]), culture), 0d, 100d)); i++;
			Values.Add("Colorappearance.AdaptScene", new PP3entry("Colorappearance.AdaptScene", Convert.ToDouble(GetValue(Llines[i]), culture), 0.001d, 16384d)); i++;
			Values.Add("Colorappearance.AutoAdapscen", new PP3entry("Colorappearance.AutoAdapscen", Convert.ToBoolean(GetValue(Llines[i])), null, null)); i++;
			Values.Add("Colorappearance.SurrSource", new PP3entry("Colorappearance.SurrSource", Convert.ToBoolean(GetValue(Llines[i])), null, null)); i++;
			Values.Add("Colorappearance.Gamut", new PP3entry("Colorappearance.Gamut", Convert.ToBoolean(GetValue(Llines[i])), null, null)); i++;
			Values.Add("Colorappearance.Datacie", new PP3entry("Colorappearance.Datacie", Convert.ToBoolean(GetValue(Llines[i])), null, null)); i++;
			Values.Add("Colorappearance.Tonecie", new PP3entry("Colorappearance.Tonecie", Convert.ToBoolean(GetValue(Llines[i])), null, null)); i++;
			Values.Add("Colorappearance.CurveMode", new PP3entry("Colorappearance.CurveMode", GetValue(Llines[i]), null, null)); i++;
			Values.Add("Colorappearance.CurveMode2", new PP3entry("Colorappearance.CurveMode2", GetValue(Llines[i]), null, null)); i++;
			Values.Add("Colorappearance.CurveMode3", new PP3entry("Colorappearance.CurveMode3", GetValue(Llines[i]), null, null)); i++;
			Values.Add("Colorappearance.Curve", new PP3entry("Colorappearance.Curve", PP3Curve.GetCurve(GetValue(Llines[i])), null, null)); i++;
			Values.Add("Colorappearance.Curve2", new PP3entry("Colorappearance.Curve2", PP3Curve.GetCurve(GetValue(Llines[i])), null, null)); i++;
			Values.Add("Colorappearance.Curve3", new PP3entry("Colorappearance.Curve3", PP3Curve.GetCurve(GetValue(Llines[i])), null, null)); i++;
			Values.Add("ImpulseDenoising.Enabled", new PP3entry("ImpulseDenoising.Enabled", Convert.ToBoolean(GetValue(Llines[i])), null, null)); i++;
			Values.Add("ImpulseDenoising.Threshold", new PP3entry("ImpulseDenoising.Threshold", Convert.ToInt32(GetValue(Llines[i])), 0, 100)); i++;
			Values.Add("Defringing.Enabled", new PP3entry("Defringing.Enabled", Convert.ToBoolean(GetValue(Llines[i])), null, null)); i++;
			Values.Add("Defringing.Radius", new PP3entry("Defringing.Radius", Convert.ToDouble(GetValue(Llines[i]), culture), 0.5d, 5d)); i++;
			Values.Add("Defringing.Threshold", new PP3entry("Defringing.Threshold", Convert.ToInt32(GetValue(Llines[i])), 0, 100)); i++;
			Values.Add("Defringing.HueCurve", new PP3entry("Defringing.HueCurve", PP3Curve.GetCurve(GetValue(Llines[i])), null, null)); i++;
			Values.Add("DirectionalPyramidDenoising.Enabled", new PP3entry("DirectionalPyramidDenoising.Enabled", Convert.ToBoolean(GetValue(Llines[i])), null, null)); i++;
			Values.Add("DirectionalPyramidDenoising.Enhance", new PP3entry("DirectionalPyramidDenoising.Enhance", Convert.ToBoolean(GetValue(Llines[i])), null, null)); i++;
			Values.Add("DirectionalPyramidDenoising.Median", new PP3entry("DirectionalPyramidDenoising.Median", Convert.ToBoolean(GetValue(Llines[i])), null, null)); i++;
			Values.Add("DirectionalPyramidDenoising.Auto", new PP3entry("DirectionalPyramidDenoising.Auto", Convert.ToBoolean(GetValue(Llines[i])), null, null)); i++;
			Values.Add("DirectionalPyramidDenoising.Luma", new PP3entry("DirectionalPyramidDenoising.Luma", Convert.ToDouble(GetValue(Llines[i]), culture), 0d, 100d)); i++;
			Values.Add("DirectionalPyramidDenoising.Ldetail", new PP3entry("DirectionalPyramidDenoising.Ldetail", Convert.ToDouble(GetValue(Llines[i]), culture), 0d, 100d)); i++;
			Values.Add("DirectionalPyramidDenoising.Chroma", new PP3entry("DirectionalPyramidDenoising.Chroma", Convert.ToDouble(GetValue(Llines[i]), culture), 0d, 100d)); i++;
			Values.Add("DirectionalPyramidDenoising.Method", new PP3entry("DirectionalPyramidDenoising.Method", GetValue(Llines[i]), null, null)); i++;
			Values.Add("DirectionalPyramidDenoising.LMethod", new PP3entry("DirectionalPyramidDenoising.LMethod", GetValue(Llines[i]), null, null)); i++;
			Values.Add("DirectionalPyramidDenoising.CMethod", new PP3entry("DirectionalPyramidDenoising.CMethod", GetValue(Llines[i]), null, null)); i++;
			Values.Add("DirectionalPyramidDenoising.C2Method", new PP3entry("DirectionalPyramidDenoising.C2Method", GetValue(Llines[i]), null, null)); i++;
			Values.Add("DirectionalPyramidDenoising.SMethod", new PP3entry("DirectionalPyramidDenoising.SMethod", GetValue(Llines[i]), null, null)); i++;
			Values.Add("DirectionalPyramidDenoising.MedMethod", new PP3entry("DirectionalPyramidDenoising.MedMethod", GetValue(Llines[i]), null, null)); i++;
			Values.Add("DirectionalPyramidDenoising.RGBMethod", new PP3entry("DirectionalPyramidDenoising.RGBMethod", GetValue(Llines[i]), null, null)); i++;
			Values.Add("DirectionalPyramidDenoising.MethodMed", new PP3entry("DirectionalPyramidDenoising.MethodMed", GetValue(Llines[i]), null, null)); i++;
			Values.Add("DirectionalPyramidDenoising.Redchro", new PP3entry("DirectionalPyramidDenoising.Redchro", Convert.ToDouble(GetValue(Llines[i]), culture), -100d, 100d)); i++;
			Values.Add("DirectionalPyramidDenoising.Bluechro", new PP3entry("DirectionalPyramidDenoising.Bluechro", Convert.ToDouble(GetValue(Llines[i]), culture), -100d, 100d)); i++;
			Values.Add("DirectionalPyramidDenoising.Gamma", new PP3entry("DirectionalPyramidDenoising.Gamma", Convert.ToDouble(GetValue(Llines[i]), culture), 1d, 3d)); i++;
			Values.Add("DirectionalPyramidDenoising.Passes", new PP3entry("DirectionalPyramidDenoising.Passes", Convert.ToInt32(GetValue(Llines[i])), 1, 3)); i++;
			Values.Add("DirectionalPyramidDenoising.LCurve", new PP3entry("DirectionalPyramidDenoising.LCurve", PP3Curve.GetCurve(GetValue(Llines[i])), null, null)); i++;
			Values.Add("DirectionalPyramidDenoising.CCCurve", new PP3entry("DirectionalPyramidDenoising.CCCurve", PP3Curve.GetCurve(GetValue(Llines[i])), null, null)); i++;
			Values.Add("EPD.Enabled", new PP3entry("EPD.Enabled", Convert.ToBoolean(GetValue(Llines[i])), null, null)); i++;
			Values.Add("EPD.Strength", new PP3entry("EPD.Strength", Convert.ToDouble(GetValue(Llines[i]), culture), -2d, 2d)); i++;
			Values.Add("EPD.EdgeStopping", new PP3entry("EPD.EdgeStopping", Convert.ToDouble(GetValue(Llines[i]), culture), 0.1d, 4d)); i++;
			Values.Add("EPD.Scale", new PP3entry("EPD.Scale", Convert.ToDouble(GetValue(Llines[i]), culture), 0.1d, 10d)); i++;
			Values.Add("EPD.ReweightingIterates", new PP3entry("EPD.ReweightingIterates", Convert.ToInt32(GetValue(Llines[i])), 0, 9)); i++;
			Values.Add("ShadowsAndHighlights.Enabled", new PP3entry("ShadowsAndHighlights.Enabled", Convert.ToBoolean(GetValue(Llines[i])), null, null)); i++;
			Values.Add("ShadowsAndHighlights.HighQuality", new PP3entry("ShadowsAndHighlights.HighQuality", Convert.ToBoolean(GetValue(Llines[i])), null, null)); i++;
			Values.Add("ShadowsAndHighlights.Highlights", new PP3entry("ShadowsAndHighlights.Highlights", Convert.ToInt32(GetValue(Llines[i])), 0, 100)); i++;
			Values.Add("ShadowsAndHighlights.HighlightTonalWidth", new PP3entry("ShadowsAndHighlights.HighlightTonalWidth", Convert.ToInt32(GetValue(Llines[i])), 10, 100)); i++;
			Values.Add("ShadowsAndHighlights.Shadows", new PP3entry("ShadowsAndHighlights.Shadows", Convert.ToInt32(GetValue(Llines[i])), 0, 100)); i++;
			Values.Add("ShadowsAndHighlights.ShadowTonalWidth", new PP3entry("ShadowsAndHighlights.ShadowTonalWidth", Convert.ToInt32(GetValue(Llines[i])), 10, 100)); i++;
			Values.Add("ShadowsAndHighlights.LocalContrast", new PP3entry("ShadowsAndHighlights.LocalContrast", Convert.ToInt32(GetValue(Llines[i])), 0, 100)); i++;
			Values.Add("ShadowsAndHighlights.Radius", new PP3entry("ShadowsAndHighlights.Radius", Convert.ToInt32(GetValue(Llines[i])), 5, 100)); i++;
			Values.Add("Crop.Enabled", new PP3entry("Crop.Enabled", Convert.ToBoolean(GetValue(Llines[i])), null, null)); i++;
            Values.Add("Crop.X", new PP3entry("Crop.X", Convert.ToInt32(GetValue(Llines[i])), null, null)); i++;
            Values.Add("Crop.Y", new PP3entry("Crop.Y", Convert.ToInt32(GetValue(Llines[i])), null, null)); i++;
            Values.Add("Crop.W", new PP3entry("Crop.W", Convert.ToInt32(GetValue(Llines[i])), null, null)); i++;
            Values.Add("Crop.H", new PP3entry("Crop.H", Convert.ToInt32(GetValue(Llines[i])), null, null)); i++;
			Values.Add("Crop.FixedRatio", new PP3entry("Crop.FixedRatio", Convert.ToBoolean(GetValue(Llines[i])), null, null)); i++;
			Values.Add("Crop.Ratio", new PP3entry("Crop.Ratio", GetValue(Llines[i]), null, null)); i++;
			Values.Add("Crop.Orientation", new PP3entry("Crop.Orientation", GetValue(Llines[i]), null, null)); i++;
			Values.Add("Crop.Guide", new PP3entry("Crop.Guide", GetValue(Llines[i]), null, null)); i++;
			Values.Add("CoarseTransformation.Rotate", new PP3entry("CoarseTransformation.Rotate", Convert.ToInt32(GetValue(Llines[i])), 0, 0)); i++;
			Values.Add("CoarseTransformation.HorizontalFlip", new PP3entry("CoarseTransformation.HorizontalFlip", Convert.ToBoolean(GetValue(Llines[i])), null, null)); i++;
			Values.Add("CoarseTransformation.VerticalFlip", new PP3entry("CoarseTransformation.VerticalFlip", Convert.ToBoolean(GetValue(Llines[i])), null, null)); i++;
			Values.Add("CommonPropertiesforTransformations.AutoFill", new PP3entry("CommonPropertiesforTransformations.AutoFill", Convert.ToBoolean(GetValue(Llines[i])), null, null)); i++;
			Values.Add("Rotation.Degree", new PP3entry("Rotation.Degree", Convert.ToDouble(GetValue(Llines[i]), culture), -45d, 45d)); i++;
			Values.Add("Distortion.Amount", new PP3entry("Distortion.Amount", Convert.ToDouble(GetValue(Llines[i]), culture), -0.5d, 0.5d)); i++;
			Values.Add("LensProfile.LCPFile", new PP3entry("LensProfile.LCPFile", GetValue(Llines[i]), null, null)); i++;
			Values.Add("LensProfile.UseDistortion", new PP3entry("LensProfile.UseDistortion", Convert.ToBoolean(GetValue(Llines[i])), null, null)); i++;
			Values.Add("LensProfile.UseVignette", new PP3entry("LensProfile.UseVignette", Convert.ToBoolean(GetValue(Llines[i])), null, null)); i++;
			Values.Add("LensProfile.UseCA", new PP3entry("LensProfile.UseCA", Convert.ToBoolean(GetValue(Llines[i])), null, null)); i++;
			Values.Add("Perspective.Horizontal", new PP3entry("Perspective.Horizontal", Convert.ToDouble(GetValue(Llines[i]), culture), -100d, 100d)); i++;
			Values.Add("Perspective.Vertical", new PP3entry("Perspective.Vertical", Convert.ToDouble(GetValue(Llines[i]), culture), -100d, 100d)); i++;
			Values.Add("Gradient.Enabled", new PP3entry("Gradient.Enabled", Convert.ToBoolean(GetValue(Llines[i])), null, null)); i++;
			Values.Add("Gradient.Degree", new PP3entry("Gradient.Degree", Convert.ToInt32(GetValue(Llines[i])), -180, 180)); i++;
			Values.Add("Gradient.Feather", new PP3entry("Gradient.Feather", Convert.ToInt32(GetValue(Llines[i])), 0, 100)); i++;
			Values.Add("Gradient.Strength", new PP3entry("Gradient.Strength", Convert.ToDouble(GetValue(Llines[i]), culture), -5d, 5d)); i++;
			Values.Add("Gradient.CenterX", new PP3entry("Gradient.CenterX", Convert.ToInt32(GetValue(Llines[i])), -100, 100)); i++;
			Values.Add("Gradient.CenterY", new PP3entry("Gradient.CenterY", Convert.ToInt32(GetValue(Llines[i])), -100, 100)); i++;
			Values.Add("PCVignette.Enabled", new PP3entry("PCVignette.Enabled", Convert.ToBoolean(GetValue(Llines[i])), null, null)); i++;
			Values.Add("PCVignette.Strength", new PP3entry("PCVignette.Strength", Convert.ToDouble(GetValue(Llines[i]), culture), -6d, 6d)); i++;
			Values.Add("PCVignette.Feather", new PP3entry("PCVignette.Feather", Convert.ToInt32(GetValue(Llines[i])), 0, 100)); i++;
			Values.Add("PCVignette.Roundness", new PP3entry("PCVignette.Roundness", Convert.ToInt32(GetValue(Llines[i])), 0, 100)); i++;
			Values.Add("CACorrection.Red", new PP3entry("CACorrection.Red", Convert.ToDouble(GetValue(Llines[i]), culture), -0.005d, 0.005d)); i++;
			Values.Add("CACorrection.Blue", new PP3entry("CACorrection.Blue", Convert.ToDouble(GetValue(Llines[i]), culture), -0.005d, 0.005d)); i++;
			Values.Add("VignettingCorrection.Amount", new PP3entry("VignettingCorrection.Amount", Convert.ToInt32(GetValue(Llines[i])), -100, 100)); i++;
			Values.Add("VignettingCorrection.Radius", new PP3entry("VignettingCorrection.Radius", Convert.ToInt32(GetValue(Llines[i])), 0, 100)); i++;
			Values.Add("VignettingCorrection.Strength", new PP3entry("VignettingCorrection.Strength", Convert.ToInt32(GetValue(Llines[i])), 1, 100)); i++;
			Values.Add("VignettingCorrection.CenterX", new PP3entry("VignettingCorrection.CenterX", Convert.ToInt32(GetValue(Llines[i])), -100, 100)); i++;
			Values.Add("VignettingCorrection.CenterY", new PP3entry("VignettingCorrection.CenterY", Convert.ToInt32(GetValue(Llines[i])), -100, 100)); i++;
			Values.Add("Resize.Enabled", new PP3entry("Resize.Enabled", Convert.ToBoolean(GetValue(Llines[i])), null, null)); i++;
			Values.Add("Resize.Scale", new PP3entry("Resize.Scale", Convert.ToDouble(GetValue(Llines[i]), culture), 0.23d, 0.23d)); i++;
			Values.Add("Resize.AppliesTo", new PP3entry("Resize.AppliesTo", GetValue(Llines[i]), null, null)); i++;
			Values.Add("Resize.Method", new PP3entry("Resize.Method", GetValue(Llines[i]), null, null)); i++;
			Values.Add("Resize.DataSpecified", new PP3entry("Resize.DataSpecified", Convert.ToInt32(GetValue(Llines[i])), 0, 0)); i++;
			Values.Add("Resize.Width", new PP3entry("Resize.Width", Convert.ToInt32(GetValue(Llines[i])), 0, 0)); i++;
			Values.Add("Resize.Height", new PP3entry("Resize.Height", Convert.ToInt32(GetValue(Llines[i])), 0, 0)); i++;
			Values.Add("ColorManagement.InputProfile", new PP3entry("ColorManagement.InputProfile", GetValue(Llines[i]), null, null)); i++;
			Values.Add("ColorManagement.ToneCurve", new PP3entry("ColorManagement.ToneCurve", Convert.ToBoolean(GetValue(Llines[i])), null, null)); i++;
			Values.Add("ColorManagement.BlendCMSMatrix", new PP3entry("ColorManagement.BlendCMSMatrix", Convert.ToBoolean(GetValue(Llines[i])), null, null)); i++;
			Values.Add("ColorManagement.DCPIlluminant", new PP3entry("ColorManagement.DCPIlluminant", Convert.ToInt32(GetValue(Llines[i])), 0, 0)); i++;
			Values.Add("ColorManagement.WorkingProfile", new PP3entry("ColorManagement.WorkingProfile", GetValue(Llines[i]), null, null)); i++;
			Values.Add("ColorManagement.OutputProfile", new PP3entry("ColorManagement.OutputProfile", GetValue(Llines[i]), null, null)); i++;
			Values.Add("ColorManagement.Gammafree", new PP3entry("ColorManagement.Gammafree", GetValue(Llines[i]), null, null)); i++;
			Values.Add("ColorManagement.Freegamma", new PP3entry("ColorManagement.Freegamma", Convert.ToBoolean(GetValue(Llines[i])), null, null)); i++;
			Values.Add("ColorManagement.GammaValue", new PP3entry("ColorManagement.GammaValue", Convert.ToDouble(GetValue(Llines[i]), culture), 1d, 3.5d)); i++;
			Values.Add("ColorManagement.GammaSlope", new PP3entry("ColorManagement.GammaSlope", Convert.ToDouble(GetValue(Llines[i]), culture), 0d, 15d)); i++;
			Values.Add("DirectionalPyramidEqualizer.Enabled", new PP3entry("DirectionalPyramidEqualizer.Enabled", Convert.ToBoolean(GetValue(Llines[i])), null, null)); i++;
			Values.Add("DirectionalPyramidEqualizer.Gamutlab", new PP3entry("DirectionalPyramidEqualizer.Gamutlab", Convert.ToBoolean(GetValue(Llines[i])), null, null)); i++;
			Values.Add("DirectionalPyramidEqualizer.Mult0", new PP3entry("DirectionalPyramidEqualizer.Mult0", Convert.ToDouble(GetValue(Llines[i]), culture), 0d, 4d)); i++;
			Values.Add("DirectionalPyramidEqualizer.Mult1", new PP3entry("DirectionalPyramidEqualizer.Mult1", Convert.ToDouble(GetValue(Llines[i]), culture), 0d, 4d)); i++;
			Values.Add("DirectionalPyramidEqualizer.Mult2", new PP3entry("DirectionalPyramidEqualizer.Mult2", Convert.ToDouble(GetValue(Llines[i]), culture), 0d, 4d)); i++;
			Values.Add("DirectionalPyramidEqualizer.Mult3", new PP3entry("DirectionalPyramidEqualizer.Mult3", Convert.ToDouble(GetValue(Llines[i]), culture), 0d, 4d)); i++;
			Values.Add("DirectionalPyramidEqualizer.Mult4", new PP3entry("DirectionalPyramidEqualizer.Mult4", Convert.ToDouble(GetValue(Llines[i]), culture), 0d, 4d)); i++;
			Values.Add("DirectionalPyramidEqualizer.Threshold", new PP3entry("DirectionalPyramidEqualizer.Threshold", Convert.ToDouble(GetValue(Llines[i]), culture), 0d, 1d)); i++;
			Values.Add("DirectionalPyramidEqualizer.Skinprotect", new PP3entry("DirectionalPyramidEqualizer.Skinprotect", Convert.ToInt32(GetValue(Llines[i])), -100, 100)); i++;
			Values.Add("DirectionalPyramidEqualizer.Hueskin", new PP3entry("DirectionalPyramidEqualizer.Hueskin", PP3Curve.GetCurve(GetValue(Llines[i])), null, null)); i++;
			Values.Add("HSVEqualizer.HCurve", new PP3entry("HSVEqualizer.HCurve", PP3Curve.GetCurve(GetValue(Llines[i])), null, null)); i++;
			Values.Add("HSVEqualizer.SCurve", new PP3entry("HSVEqualizer.SCurve", PP3Curve.GetCurve(GetValue(Llines[i])), null, null)); i++;
			Values.Add("HSVEqualizer.VCurve", new PP3entry("HSVEqualizer.VCurve", PP3Curve.GetCurve(GetValue(Llines[i])), null, null)); i++;
			Values.Add("FilmSimulation.Enabled", new PP3entry("FilmSimulation.Enabled", Convert.ToBoolean(GetValue(Llines[i])), null, null)); i++;
			Values.Add("FilmSimulation.ClutFilename", new PP3entry("FilmSimulation.ClutFilename", GetValue(Llines[i]), null, null)); i++;
			Values.Add("FilmSimulation.Strength", new PP3entry("FilmSimulation.Strength", Convert.ToInt32(GetValue(Llines[i])), 0, 100)); i++;
			Values.Add("RGBCurves.LumaMode", new PP3entry("RGBCurves.LumaMode", Convert.ToBoolean(GetValue(Llines[i])), null, null)); i++;
			Values.Add("RGBCurves.rCurve", new PP3entry("RGBCurves.rCurve", PP3Curve.GetCurve(GetValue(Llines[i])), null, null)); i++;
			Values.Add("RGBCurves.gCurve", new PP3entry("RGBCurves.gCurve", PP3Curve.GetCurve(GetValue(Llines[i])), null, null)); i++;
			Values.Add("RGBCurves.bCurve", new PP3entry("RGBCurves.bCurve", PP3Curve.GetCurve(GetValue(Llines[i])), null, null)); i++;
			Values.Add("ColorToning.Enabled", new PP3entry("ColorToning.Enabled", Convert.ToBoolean(GetValue(Llines[i])), null, null)); i++;
			Values.Add("ColorToning.Method", new PP3entry("ColorToning.Method", GetValue(Llines[i]), null, null)); i++;
			Values.Add("ColorToning.Lumamode", new PP3entry("ColorToning.Lumamode", Convert.ToBoolean(GetValue(Llines[i])), null, null)); i++;
			Values.Add("ColorToning.Twocolor", new PP3entry("ColorToning.Twocolor", GetValue(Llines[i]), null, null)); i++;
			Values.Add("ColorToning.Redlow", new PP3entry("ColorToning.Redlow", Convert.ToInt32(GetValue(Llines[i])), -100, 100)); i++;
			Values.Add("ColorToning.Greenlow", new PP3entry("ColorToning.Greenlow", Convert.ToInt32(GetValue(Llines[i])), -100, 100)); i++;
			Values.Add("ColorToning.Bluelow", new PP3entry("ColorToning.Bluelow", Convert.ToInt32(GetValue(Llines[i])), -100, 100)); i++;
			Values.Add("ColorToning.Satlow", new PP3entry("ColorToning.Satlow", Convert.ToInt32(GetValue(Llines[i])), 0, 0)); i++;
			Values.Add("ColorToning.Balance", new PP3entry("ColorToning.Balance", Convert.ToInt32(GetValue(Llines[i])), -100, 100)); i++;
			Values.Add("ColorToning.Sathigh", new PP3entry("ColorToning.Sathigh", Convert.ToInt32(GetValue(Llines[i])), 0, 0)); i++;
			Values.Add("ColorToning.Redmed", new PP3entry("ColorToning.Redmed", Convert.ToInt32(GetValue(Llines[i])), -100, 100)); i++;
			Values.Add("ColorToning.Greenmed", new PP3entry("ColorToning.Greenmed", Convert.ToInt32(GetValue(Llines[i])), -100, 100)); i++;
			Values.Add("ColorToning.Bluemed", new PP3entry("ColorToning.Bluemed", Convert.ToInt32(GetValue(Llines[i])), -100, 100)); i++;
			Values.Add("ColorToning.Redhigh", new PP3entry("ColorToning.Redhigh", Convert.ToInt32(GetValue(Llines[i])), -100, 100)); i++;
			Values.Add("ColorToning.Greenhigh", new PP3entry("ColorToning.Greenhigh", Convert.ToInt32(GetValue(Llines[i])), -100, 100)); i++;
			Values.Add("ColorToning.Bluehigh", new PP3entry("ColorToning.Bluehigh", Convert.ToInt32(GetValue(Llines[i])), -100, 100)); i++;
			Values.Add("ColorToning.Autosat", new PP3entry("ColorToning.Autosat", Convert.ToBoolean(GetValue(Llines[i])), null, null)); i++;
			Values.Add("ColorToning.OpacityCurve", new PP3entry("ColorToning.OpacityCurve", PP3Curve.GetCurve(GetValue(Llines[i])), null, null)); i++;
			Values.Add("ColorToning.ColorCurve", new PP3entry("ColorToning.ColorCurve", PP3Curve.GetCurve(GetValue(Llines[i])), null, null)); i++;
			Values.Add("ColorToning.SatProtectionThreshold", new PP3entry("ColorToning.SatProtectionThreshold", Convert.ToInt32(GetValue(Llines[i])), 0, 0)); i++;
			Values.Add("ColorToning.SaturatedOpacity", new PP3entry("ColorToning.SaturatedOpacity", Convert.ToInt32(GetValue(Llines[i])), 0, 0)); i++;
			Values.Add("ColorToning.Strength", new PP3entry("ColorToning.Strength", Convert.ToInt32(GetValue(Llines[i])), 0, 100)); i++;
			Values.Add("ColorToning.HighlightsColorSaturation", new PP3entry("ColorToning.HighlightsColorSaturation", PP3Curve.GetCurve(GetValue(Llines[i])), null, null)); i++;
			Values.Add("ColorToning.ShadowsColorSaturation", new PP3entry("ColorToning.ShadowsColorSaturation", PP3Curve.GetCurve(GetValue(Llines[i])), null, null)); i++;
			Values.Add("ColorToning.ClCurve", new PP3entry("ColorToning.ClCurve", PP3Curve.GetCurve(GetValue(Llines[i])), null, null)); i++;
			Values.Add("ColorToning.Cl2Curve", new PP3entry("ColorToning.Cl2Curve", PP3Curve.GetCurve(GetValue(Llines[i])), null, null)); i++;
			Values.Add("RAW.DarkFrame", new PP3entry("RAW.DarkFrame", GetValue(Llines[i]), null, null)); i++;
			Values.Add("RAW.DarkFrameAuto", new PP3entry("RAW.DarkFrameAuto", Convert.ToBoolean(GetValue(Llines[i])), null, null)); i++;
			Values.Add("RAW.FlatFieldFile", new PP3entry("RAW.FlatFieldFile", GetValue(Llines[i]), null, null)); i++;
			Values.Add("RAW.FlatFieldAutoSelect", new PP3entry("RAW.FlatFieldAutoSelect", Convert.ToBoolean(GetValue(Llines[i])), null, null)); i++;
			Values.Add("RAW.FlatFieldBlurRadius", new PP3entry("RAW.FlatFieldBlurRadius", Convert.ToInt32(GetValue(Llines[i])), 0, 200)); i++;
			Values.Add("RAW.FlatFieldBlurType", new PP3entry("RAW.FlatFieldBlurType", GetValue(Llines[i]), null, null)); i++;
			Values.Add("RAW.FlatFieldAutoClipControl", new PP3entry("RAW.FlatFieldAutoClipControl", Convert.ToBoolean(GetValue(Llines[i])), null, null)); i++;
			Values.Add("RAW.FlatFieldClipControl", new PP3entry("RAW.FlatFieldClipControl", Convert.ToBoolean(GetValue(Llines[i])), null, null)); i++;
			Values.Add("RAW.CA", new PP3entry("RAW.CA", Convert.ToBoolean(GetValue(Llines[i])), null, null)); i++;
			Values.Add("RAW.CARed", new PP3entry("RAW.CARed", Convert.ToDouble(GetValue(Llines[i]), culture), -4d, 4d)); i++;
			Values.Add("RAW.CABlue", new PP3entry("RAW.CABlue", Convert.ToDouble(GetValue(Llines[i]), culture), -4d, 4d)); i++;
			Values.Add("RAW.HotPixelFilter", new PP3entry("RAW.HotPixelFilter", Convert.ToBoolean(GetValue(Llines[i])), null, null)); i++;
			Values.Add("RAW.DeadPixelFilter", new PP3entry("RAW.DeadPixelFilter", Convert.ToBoolean(GetValue(Llines[i])), null, null)); i++;
			Values.Add("RAW.HotDeadPixelThresh", new PP3entry("RAW.HotDeadPixelThresh", Convert.ToInt32(GetValue(Llines[i])), 40, 40)); i++;
			Values.Add("RAW.PreExposure", new PP3entry("RAW.PreExposure", Convert.ToDouble(GetValue(Llines[i]), culture), 0.1d, 16d)); i++;
			Values.Add("RAW.PrePreserv", new PP3entry("RAW.PrePreserv", Convert.ToDouble(GetValue(Llines[i]), culture), 0d, 2.5d)); i++;
			Values.Add("RAWBayer.Method", new PP3entry("RAWBayer.Method", GetValue(Llines[i]), null, null)); i++;
			Values.Add("RAWBayer.CcSteps", new PP3entry("RAWBayer.CcSteps", Convert.ToInt32(GetValue(Llines[i])), 0, 5)); i++;
			Values.Add("RAWBayer.PreBlack0", new PP3entry("RAWBayer.PreBlack0", Convert.ToDouble(GetValue(Llines[i]), culture), -2048d, 2048d)); i++;
			Values.Add("RAWBayer.PreBlack1", new PP3entry("RAWBayer.PreBlack1", Convert.ToDouble(GetValue(Llines[i]), culture), -2048d, 2048d)); i++;
			Values.Add("RAWBayer.PreBlack2", new PP3entry("RAWBayer.PreBlack2", Convert.ToDouble(GetValue(Llines[i]), culture), -2048d, 2048d)); i++;
			Values.Add("RAWBayer.PreBlack3", new PP3entry("RAWBayer.PreBlack3", Convert.ToDouble(GetValue(Llines[i]), culture), -2048d, 2048d)); i++;
			Values.Add("RAWBayer.PreTwoGreen", new PP3entry("RAWBayer.PreTwoGreen", Convert.ToBoolean(GetValue(Llines[i])), null, null)); i++;
			Values.Add("RAWBayer.LineDenoise", new PP3entry("RAWBayer.LineDenoise", Convert.ToInt32(GetValue(Llines[i])), 0, 1000)); i++;
			Values.Add("RAWBayer.GreenEqThreshold", new PP3entry("RAWBayer.GreenEqThreshold", Convert.ToInt32(GetValue(Llines[i])), 0, 100)); i++;
			Values.Add("RAWBayer.DCBIterations", new PP3entry("RAWBayer.DCBIterations", Convert.ToInt32(GetValue(Llines[i])), 0, 5)); i++;
			Values.Add("RAWBayer.DCBEnhance", new PP3entry("RAWBayer.DCBEnhance", Convert.ToBoolean(GetValue(Llines[i])), null, null)); i++;
			Values.Add("RAWBayer.LMMSEIterations", new PP3entry("RAWBayer.LMMSEIterations", Convert.ToInt32(GetValue(Llines[i])), 0, 6)); i++;
			Values.Add("RAWX-Trans.Method", new PP3entry("RAWX-Trans.Method", GetValue(Llines[i]), null, null)); i++;
			Values.Add("RAWX-Trans.CcSteps", new PP3entry("RAWX-Trans.CcSteps", Convert.ToInt32(GetValue(Llines[i])), 0, 5)); i++;
			Values.Add("RAWX-Trans.PreBlackRed", new PP3entry("RAWX-Trans.PreBlackRed", Convert.ToDouble(GetValue(Llines[i]), culture), -2048d, 2048d)); i++;
			Values.Add("RAWX-Trans.PreBlackGreen", new PP3entry("RAWX-Trans.PreBlackGreen", Convert.ToDouble(GetValue(Llines[i]), culture), -2048d, 2048d)); i++;
			Values.Add("RAWX-Trans.PreBlackBlue", new PP3entry("RAWX-Trans.PreBlackBlue", Convert.ToDouble(GetValue(Llines[i]), culture), -2048d, 2048d)); i++;

			NewCompensation = Compensation;
		}
	}
}
